#!/bin/bash

# 检查是否以 root 用户运行
if [ "$EUID" -ne 0 ]; then 
    echo "请使用 root 用户运行此脚本"
    exit 1
fi

# 设置变量
FRP_DIR="/home/sunfly/frp"
SERVICE_FILE="/etc/systemd/system/frpc.service"
REPO_URL="https://gitee.com/Francesc/noderedinstall.git"
TEMP_DIR="/tmp/frp_temp"

# 创建目录
echo "正在创建目录..."
mkdir -p $FRP_DIR
mkdir -p $TEMP_DIR

# 安装 Git LFS
echo "正在安装 Git LFS..."
if command -v apt-get >/dev/null 2>&1; then
    apt-get update
    apt-get install -y git-lfs
elif command -v yum >/dev/null 2>&1; then
    yum install -y git-lfs
else
    echo "错误：无法安装 Git LFS，请手动安装"
    exit 1
fi

# 初始化 Git LFS
echo "正在初始化 Git LFS..."
cd $TEMP_DIR
git lfs install
git clone $REPO_URL .

# 查找文件
echo "正在查找文件..."
FRPC_PATH=$(find . -name "frpc" -type f)
FRPC_INI_PATH=$(find . -name "frpc.ini" -type f)
FRPC_FULL_INI_PATH=$(find . -name "frpc_full.ini" -type f)
LICENSE_PATH=$(find . -name "LICENSE" -type f)

# 显示找到的文件路径
echo "找到的文件路径："
echo "frpc: $FRPC_PATH"
echo "frpc.ini: $FRPC_INI_PATH"
echo "frpc_full.ini: $FRPC_FULL_INI_PATH"
echo "LICENSE: $LICENSE_PATH"

# 复制文件
echo "正在复制文件..."
if [ -n "$FRPC_PATH" ]; then
    cp "$FRPC_PATH" "$FRP_DIR/frpc"
else
    echo "错误：未找到 frpc 文件"
    exit 1
fi

if [ -n "$FRPC_INI_PATH" ]; then
    cp "$FRPC_INI_PATH" "$FRP_DIR/frpc.ini"
else
    echo "警告：未找到 frpc.ini 文件"
fi

if [ -n "$FRPC_FULL_INI_PATH" ]; then
    cp "$FRPC_FULL_INI_PATH" "$FRP_DIR/frpc_full.ini"
else
    echo "警告：未找到 frpc_full.ini 文件"
fi

if [ -n "$LICENSE_PATH" ]; then
    cp "$LICENSE_PATH" "$FRP_DIR/LICENSE"
else
    echo "警告：未找到 LICENSE 文件"
fi

# 清理临时目录
echo "正在清理临时文件..."
cd $FRP_DIR
rm -rf $TEMP_DIR

# 检查文件是否复制成功
if [ ! -f "$FRP_DIR/frpc" ]; then
    echo "错误：FRP 文件复制失败"
    exit 1
fi

# 设置文件权限
echo "正在设置文件权限..."
chmod +x $FRP_DIR/frpc
if [ -f "$FRP_DIR/frpc.ini" ]; then
    chmod 644 $FRP_DIR/frpc.ini
fi
if [ -f "$FRP_DIR/frpc_full.ini" ]; then
    chmod 644 $FRP_DIR/frpc_full.ini
fi
if [ -f "$FRP_DIR/LICENSE" ]; then
    chmod 644 $FRP_DIR/LICENSE
fi

# 创建服务文件
echo "正在创建服务文件..."
cat > $SERVICE_FILE << EOF
[Unit]
Description = frp client 
After = network.target syslog.target network-online.target 
Wants = network.target network-online.target 

[Service] 
Type = simple
ExecStart = $FRP_DIR/frpc -c $FRP_DIR/frpc.ini 
Restart=always 
RestartSec=30s 

[Install] 
WantedBy = multi-user.target
EOF

# 设置服务文件权限
chmod 644 $SERVICE_FILE

# 重新加载 systemd
systemctl daemon-reload

# 启用并启动服务
echo "正在启用服务..."
sudo systemctl enable frpc
echo "正在启动服务..."
sudo systemctl start frpc

# 检查服务状态
echo "服务状态："
systemctl status frpc

echo "安装完成！"
echo "FRP 文件已下载到 $FRP_DIR 目录"
echo "请检查 $FRP_DIR/frpc.ini 配置文件并根据需要修改"
echo "License 文件已下载到 $FRP_DIR 目录"
